package com.jyw.business.de.domain.vo.web;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyw.business.de.domain.DeTaskInfo;
import com.jyw.common.annotation.Conversion;
import com.jyw.common.constant.SysDictTypeConstant;
import com.jyw.common.enums.ConversionType;
import com.jyw.common.utils.bean.BeanUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldNameConstants;

import java.util.Date;

@Data
@ApiModel("需求任务返回实体")
@FieldNameConstants
@NoArgsConstructor
public class DemandTaskVO {

    /** 主键 */
    @ApiModelProperty("主键")
    private Long id;

    /** 需求主键 */
    @ApiModelProperty("需求主键")
    private Long demandId;

    @ApiModelProperty("是否退单 1是 0否")
    private Boolean back;

    /** 任务状态(数据字典) */
    @ApiModelProperty("任务状态(数据字典)")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.DE_TASK_STATE)
    private String taskState;

    @ApiModelProperty("任务状态标签")
    private String taskStateToName;

    /** 任务名称 */
    @ApiModelProperty("任务名称")
    private String taskName;

    /** 任务描述 */
    @ApiModelProperty("任务描述")
    private String taskRemark;

    /** 处理人 */
    @ApiModelProperty("处理人")
    @Conversion(value = ConversionType.USER,name = Fields.taskUserName)
    private Long taskUser;

    @ApiModelProperty("处理人名称")
    private String taskUserName;
    /** 催办次数 */
    @ApiModelProperty("催办次数")
    private Integer taskHurry;

    /** 期望完成日期 */
    @ApiModelProperty("期望完成日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reqCompleteDate;

    /** 更新时间 */
    @ApiModelProperty("创建时间/更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    public DemandTaskVO(DeTaskInfo data) {
        BeanUtils.copyProperties(data,this);
    }
}
